/*
    封装函数声明&其他公共定义

    本文件已引用config.h及pin.h
*/

#ifndef _F_H__
#define _F_H__

#include "config.h"
#include "pin.h"
#include "Arduino.h"

/*-----Joystick-----*/
extern bool stateChangedFlag;//状态变化标志，为1时需要发送手柄状态
void initJoystick();//初始化手柄
void sendState();//发送手柄状态
void DEBUG_FUN();//调试模式

/*-----按键类-----*/
void initButtons();//初始化按键
extern bool button_state[BUTTON_NUM];//引脚状态
void readButtonsAndSet();//依次读取按键值并（尝试）设定

/*-----模拟量类-----*/
bool isSimilar(uint16_t a,uint16_t b, uint16_t accuracy);//a与b是否相差不到accuracy
extern uint16_t steering_value;//过去转向设定值
void readSteeringAndSet();//读取转向
extern uint16_t speed_value;//过去速度设定值
void readSpeedAndSet();//读取速度
extern uint16_t brake_value;
void readBrakeAndSet();//读取刹车


#endif